package main

import (
	"context"
	"sync"

	"GrpcPool/pb"
	"GrpcPool/pool"
	"GrpcPool/srv"
)

// 噢你也许会好奇为什么这里有一个main
// 这是我用来逐步调试的233
// test不能逐步测试，这里逐步调试也不能看出并行关系
// 但是问题不大233

const (
	endpoint = "0.0.0.0:7000" //终端地址
)

var (
	myPool pool.Pool
	send   *pb.UserInfo
	once   sync.Once
)

// 初始化方法
func init() {
	once.Do(func() {
		// 初始化 grpc 连接池
		myPool, _ = pool.NewPool(endpoint, nil)
		// 测试数据
		send = &pb.UserInfo{Name: "123", Password: "456"}
		// 开启 grpc 服务器
		go srv.StartGrpcServer(endpoint)
	})
}

func main() {
	go myPool.Scan()
	conn, _ := myPool.Get()
	cli := pb.NewQueryUserServiceClient(conn.Value())
	_, _ = cli.QueryUser(context.Background(), send)
	_ = myPool.Put(conn)
}
